package com.xjh.basestudy.lanqiaobei.string;

/**
 * 2019 Java C组第一题：
 * 小明对数位中含有2、0、1、9的数字很感兴趣。
 * 比如在1到40中这样的数包括1、2、9、10至32、39和40，共28个，他们的和是574。请问，在1到2019中，所有这样的数的和是多少？
 * - 思路分析：
 * - 1.获取1-2019每个数字的千位（不为0）、百位、十位、个位。，将每一个数字和2、0、1、9这四个数字进行比较。如果存在，
 * 可以累加到变量count上。123对10取模，得到个位3   123/10再对10取模得十位2 ， 123/10/10 再对10取模得到百位1.
 * - 2.将数字转成字符串。获取每一位得数字。将每一个数字和2、0、1、9这四个数字进行比较。如果存在，可以累加到变量count上。
 */
public class C2019_1 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 2019; i++) {
            //将数字转成字符串
            String j = i + "";
            //将字符串转成字符数组  toCharArray()
            char[] cs = j.toCharArray();
            for (int k = 0; k < cs.length; k++) {//2019
                if (cs[k] == '0' || cs[k] == '1' || cs[k] == '2' || cs[k] == '9') {
                    count += i;
                    break;
                }
            }
        }
//        1905111
        System.out.println(count);
        // 定义count
        int count1 = 0;
        // 定义2019
        int num = 2019;
        // 遍历1到2019
        for (int i = 1; i <= 2019; i++) {
            // 转为字符串判断是否包含2/0/1/9
            if (String.valueOf(i).contains("2") || String.valueOf(i).contains("0") || String.valueOf(i).contains("1") || String.valueOf(i).contains("9")) {
                count1 = count1 + i;
            }
        }
        System.out.println(count1);

    }
}
